EC2-Classic 環境のインスタンスと VPC 環境外の RDS DB インスタンスの見分け方を教えてください
困っていた内容
昔作成した AWS アカウントで、EC2-Classic 環境と VPC 環境外の RDS DB インスタンスを使用しています。
VPC 環境も併用していますが、Classic 環境と VPC 環境のインスタンスはどうすれば見分けられますか?
どう対応すればいいの?
確認したいインスタンスの設定で、VPC ID が存在しなければ EC2-Classic 環境、もしくは VPC 環境外の RDS DB インスタンスになります。VPC ID が存在すれば VPC 環境のリソースになります。
EC2-Classic 環境の EC2 インスタンス確認方法
EC2 コンソールでは、EC2 インスタンスの一覧にデフォルトで VPC ID が表示されません。歯車のアイコンから VPC ID を表示する必要があります。
インスタンスの一覧で VPC ID を表示し、VPC ID が -
のインスタンスは EC2-Classic 環境になります。(大抵の場合、右へスクロールが必要です。)
ちなみに、旧 EC2 コンソールではフィルター欄に VPC ID をキーにし、値を「」(空欄)で検索ができましたが、2021/01 現在はこの検索方法が利用できなくなっていました。
AWS CLI では以下で確認ができます。
EC2-Classic 環境のインスタンス一覧抽出
$ aws ec2 describe-instances \ | jq '.Reservations[].Instances[] | select(.VpcId == null)'
対象のインスタンス ID が EC2-Classic 環境のインスタンスかどうか
$ aws ec2 describe-instances \ --instance-id <インスタンス ID> \ | jq '.Reservations[].Instances[] | select(.VpcId == null)'
結果が表示されれば EC2-Classic 環境のインスタンスです。VPC 環境のインスタンスであれば、結果は何も出力されません。
VPC 環境外の RDS DB インスタンス確認方法
RDS コンソールでは、DB インスタンスの一覧にデフォルトで VPC の項目があります。
AWS CLI では以下で確認ができます。
VPC 環境外の RDS DB インスタンス一覧抽出
$ aws rds describe-db-instances \ | jq '.[][] | select(.DBSubnetGroup == null)'
対象の DB 識別子が VPC 環境外の RDS DB インスタンスかどうか
$ aws rds describe-db-instances \ --db-instance-identifier <DB 識別子> \ | jq '.[][] | select(.DBSubnetGroup == null)'
結果が表示されれば VPC 環境外の DB インスタンスです。VPC 環境の DB インスタンスであれば、結果は何も出力されません。
まとめ
AWS ドキュメントに記載されているとおり、2013 年 12 月 4 日以降に作成した AWS アカウントであれば、EC2-Classic 環境はサポートされていません。そのため、比較的最近 AWS を触り始めた方は、Classic 環境(VPC 環境外)自体を知らないかもしれないです。
ニッチな情報ですが、古くから運用している AWS アカウントに新規の方が携わる可能性もありますので、どなたかの参考になれば幸いです。